package org.jsola.hr.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.entity.BaseDeleteDO;
import org.jsola.core.entity.Key;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Table;

/**
 * 转账批次
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Table(name = "hr_transfer_accounts_batch")
@Key(UUID = true)
public class TransferAccountsBatchDO extends BaseDeleteDO<String> {

    private static final long serialVersionUID = 1L;

    /**
     * 创建人姓名
     */
    private String createUserName;
    /**
     * 审批id
     */
    private String userApproId;
    /**
     * 公司id
     */
    private String companyId;
    /**
     * 公司名称
     */
    private String companyName;
    /**
     * 业务id
     */
    private String subjectId;
    /**
     * 到账方式：1：支付宝，2：微信，3：银行
     */
    private Integer type;
    /**
     * 二级类型：1：支付宝余额，2：安全发
     */
    private Integer secondType;
    /**
     * 第三方的批次id
     */
    private String thirdpartyBatchId;
    /**
     * 第三方的内部批次id
     */
    private String thirdPartyInteriorBatchId;
    /**
     * 转账标题
     */
    private String orderTitle;
    /**
     * 转账总金额
     */
    private BigDecimal money;
    /**
     * 批次总笔数
     */
    private Integer totalCount;
    /**
     * 成功笔数
     */
    private Integer successCount;
    /**
     * 转账成功金额
     */
    private BigDecimal successMoney;
    /**
     * 失败笔数
     */
    private Integer failCount;
    /**
     * 转账失败金额
     */
    private BigDecimal failMoney;
    /**
     * 超时时间(超过无法发起)
     */
    private Date timeExpire;
    /**
     * 备注
     */
    private String remark;
    /**
     * 业务状态：1：待申请，2：审批中，3：审批驳回，4：待发放，5：已发放
     */
    private Integer subjectStatus;
    /**
     * 支付状态：1：未支付，2：支付成功，3：支付失败，4：支付异常（部分成功的情况）5：支付中
     */
    private Integer payStatus;
    /**
     * 发放用户id
     */
    private String issueUserId;
    /**
     * 发放用户姓名
     */
    private String issueUserName;
    /**
     * 发放时间
     */
    private Date issueCreate;
    /**
     * 发放账户名称
     */
    private String issueAccountName;
    /**
     * 支付方式（1：PC，2：move）
     */
    private Integer payType;
    /**
     * 转账时间
     */
    private Date transferCreate;
    /**
     * 失败原因（整体失败才会有值）
     */
    private String failCause;
    /**
     * 是否已处理（部分异常才会有值）
     */
    private Boolean isDispose;



}

